]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
popupMenu: Adjust submenu arrows to RTL icon changes
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 9 Sep 2014 17:00:13 +0000 (19:00 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 9 Sep 2014 17:48:41 +0000 (19:48 +0200)
Since commit e04e507659027, we will already get the right icon for the
submenu arrow, so we must not mirror it again. However we do need to
take the text direction into account for the rotation now (but that's
not actually too bad - the resulting code gets quite a bit easier).

https://bugzilla.gnome.org/show_bug.cgi?id=736343

js/ui/popupMenu.js

index be8bbe9d9a2fc9451cbedd2da5b042e263191d23..524191edcf4d3efa09b3f56ff5a4a3cd324ea1c6 100644 (file)
@@ -918,14 +918,14 @@ const PopupSubMenu = new Lang.Class({
         if (animate && needsScrollbar)
             animate = false;
 
+        let targetAngle = this.actor.text_direction == Clutter.TextDirection.RTL ? -90 : 90;
+
         if (animate) {
             let [minHeight, naturalHeight] = this.actor.get_preferred_height(-1);
             this.actor.height = 0;
             this.actor._arrowRotation = this._arrow.rotation_angle_z;
-            let angle = this.actor._arrowRotation;
-            // animate to the first multiple of 90 greater than current angle
             Tweener.addTween(this.actor,
-                             { _arrowRotation: angle - angle % 90 + 90,
+                             { _arrowRotation: targetAngle,
                                height: naturalHeight,
                                time: 0.25,
                                onUpdateScope: this,
@@ -938,7 +938,7 @@ const PopupSubMenu = new Lang.Class({
                                }
                              });
         } else {
-            this._arrow.rotation_angle_z = this.actor._arrowRotation + 90;
+            this._arrow.rotation_angle_z = targetAngle;
         }
     },
 
@@ -957,10 +957,8 @@ const PopupSubMenu = new Lang.Class({
 
         if (animate) {
             this.actor._arrowRotation = this._arrow.rotation_angle_z;
-            let angle = this.actor._arrowRotation;
-            // animate to the first multiple of 90 less than current angle
             Tweener.addTween(this.actor,
-                             { _arrowRotation: (angle - 1) - (angle - 1) % 90,
+                             { _arrowRotation: 0,
                                height: 0,
                                time: 0.25,
                                onUpdateScope: this,
@@ -974,7 +972,7 @@ const PopupSubMenu = new Lang.Class({
                                },
                              });
         } else {
-            this._arrow.rotation_angle_z = this.actor._arrowRotation - 90;
+            this._arrow.rotation_angle_z = 0;
             this.actor.hide();
         }
     },
@@ -1052,8 +1050,6 @@ const PopupSubMenuMenuItem = new Lang.Class({
         this._triangleBin = new St.Widget({ y_expand: true,
                                             y_align: Clutter.ActorAlign.CENTER });
         this._triangleBin.add_child(this._triangle);
-        if (this._triangleBin.get_text_direction() == Clutter.TextDirection.RTL)
-            this._triangleBin.set_scale(-1.0, 1.0);
 
         this.actor.add_child(this._triangleBin);
         this.actor.add_accessible_state (Atk.StateType.EXPANDABLE);